//一、使用require引入http模块，获取http请求对象
const http = require('http');
//二、设置服务器信息
//设置ip地址
const hostname = '127.0.0.1';
//设置端口号
const port = 3000;
//三、搭建服务
const server = http.createServer((request,response)=>{
    //node.js服务器做响应的逻辑代码
    //获取请求数据：参数request
    //             封装了从前台页面到后台服务器的数据
    //设置响应结果：参数response
    //             封装了从后台服务器到前台页面的数据
    //输出请求信息
    console.log(request.url);
    console.log(request.method);
    if(request.url == '/favicon.ico'){
        return;
    }
    //业务逻辑
    //设置响应状态
    response.statusCode = 200;
    //设置响应头信息
    response.setHeader('Content-Type', 'text/plain;charset=utf-8' );
    //设置允许跨域
    response.setHeader("Access-Control-Allow-Origin","*");

    //定义响应结果
    let result;
    //判断有参数
    if(request.url.includes("?")){
        let paramsArr = request.url.substring(2).split("&");
        let it = paramsArr[Symbol.iterator]();
        let data = it.next();
        //定义变量存储账号
        let loginName;
        //定义变量存储密码
        let loginPwd;
        while(!data.done){
            //console.log(data);
            if(data.value.split("=")[0] == "yhm"){
                loginName = data.value.split("=")[1];
            }
            if(data.value.split("=")[0] == "mm"){
                loginPwd = data.value.split("=")[1];
            }
            data = it.next();
        }

        //校验账号密码：  正确账号密码是admin/123456
        if(loginName == "admin" && loginPwd == "123456"){
            //封装返回结果
            result = {
                code:200,
                msg:'ok',
                data:'登录成功'
            }
        }else{
            result = {
                code:400,
                msg:'error',
                data:'登录失败'
            }
        }
    }else{
        //无参结果
        result = {
            code:400,
            msg:'error',
            data:'登录失败!'
        }
    }

    response.end(JSON.stringify(result));

});
//四、监听服务
//让服务器能实时获取请求
server.listen(port,hostname,()=>{
    //在服务端输出
    console.log(`Node.js Server is running on http://${hostname}:${port}  `);
});
